import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class Example10_14 { 
    public static void main(String args[]) { 
        MyWin win=new MyWin();
    }
}
class MyWin extends JFrame implements ActionListener {
    JLabel label=null; 
    JButton 读入=null,写出=null;
    ByteArrayOutputStream out = null;
    MyWin() {
       setLayout(new FlowLayout()); 
       label=new JLabel("How are you");
       读入=new JButton("读入对象"); 
       写出=new JButton("写出对象");
       读入.addActionListener(this);
       写出.addActionListener(this);
       setVisible(true); 
       add(label);
       add(写出);
       add(读入);
       setSize(500,400);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       validate();
    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==写出) {
            try{  out = new ByteArrayOutputStream();
                  ObjectOutputStream objectOut = new ObjectOutputStream(out);
                  objectOut.writeObject(label);               
                  objectOut.close();
            }
            catch(IOException event){}
        }
        else if(e.getSource()==读入) {
            try{  ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
                  ObjectInputStream objectIn = new ObjectInputStream(in);
                  JLabel temp=(JLabel)objectIn.readObject();
                  temp.setText("你好"); 
                  this.add(temp);
                  this.validate();
                  objectIn.close();
            }
            catch(Exception event){}
        }
    }
}
